package com.itboye.ihomebank.interfaces;
/**
 * 白马锁钥匙接口类
 */
public interface KeyTwoInterface<HouseBean> {
    /**
     * 注册
     */
    void onRegister(String uid);
    /**
     * 锁初始化(v3)
     */
    void onAddMain(String uid,String lock_type,String lockName,String lockAlias,String lockMac,String lockKey,String lockFlagPos
            ,String aesKeyStr,String version,
                    String adminPwd,String noKeyPwd,String deletePwd,String pwdInfo,String timestamp,String specialValue);
    /**
     * 开锁记录
     */
    void onKaiSuoJiLu(String uid,String lock_id,String current_page,String per_page);
    /**
     * 修改钥匙有效期
     */
    void onYouXiaoQi(String uid,String key_id,String lock_id,String start,String end);
    /**
     * 冻结钥匙
     */
    void onDongJie(String uid,String to_uid,String lock_id,String key_id);
    /**
     * 解冻钥匙
     */
    void onJieDong(String uid,String to_uid,String lock_id,String key_id);
    /**
     * 设置键盘密码
     * @param pwd_info	加密后的密码信息（SDK返回的参数）
     * @param timestamp	时间戳（SDK返回的参数）,long
     */
    void onJianPanPass(String uid,String lock_id,String pwd_info,String timestamp);
    /**
     * 发送键盘密码
     * @param uid
     * @param lock_id
     * @param pwd_type	密码类型(0-单次,6小时内有效；2-永久,24小时内需用一次；3-限时,生效后24小时内需用一次,期限最多一年；4-删除(可以不管),24小时有效,锁上使用过的密码将失效)
     * @param to_phone	ihome_phone_number,send_to_who
     * @param start		开始生效时间,时间戳,整点时间,3600的倍数
     * @param end		失效时间,时间戳,整点时间,3600的倍数
     * @param date	手机时间
     */
    void onKeyboardPwd(String uid,String lock_id,String pwd_type,String to_phone,String start,String end,String date);

    /**
     * 判断是否注册白马锁
     */
    void onJudge(String uid);
    /**
     * 注册白马锁
     */
    void regSitri(String uid);

    /**
     * 锁初始化-白马锁（绑定到服务器）
     * @param uid
     * @param lockMac
     * @param lockName
     * @param lockAlias
     * @param app_time		时间
     * @param pwdInfo   	SDK返回的锁列表数据
     */
    void initSitri(String uid,String lockMac,String lockName,String lockAlias,String app_time,String pwdInfo);

    /**
     * 获取租户信息--发送钥匙的时候用到。当该用户的这把锁绑定了房源，获取到该客户的信息
     */
    void onRentInfo(String uid,String lock_id);

    /**
     * 上传锁电量
     */
    void onSetPower(String uid,String lock_id,int power);

    /**
     * 上传开锁记录
     * @param
     */
    void onUploadHistoryOfUnlock(String uid, String lockId,String records, String success,int power);

    /**
     * 上传开锁记录
     * @param reset_rent_pass   reset_rent_pass   int,是(1)否(0)清空了租户密码,百马锁
     */
    void onUploadHistoryOfUnlockTwo(String uid, String lockId,String records, String success,String reset_rent_pass,int power);
    /**
     * 我的钥匙
     */
    void onMyKey(String uid,String kword);
    /**
     * 修改门锁信息
     */
    void onUpdateKey(String uid, String lockId, String alias);
    /**
     * 发送钥匙
     * @param send_type	钥匙类型8.0 说明里面的钥匙类型 管理员发送(1用户/2租户),租户发送(3租户用户)]
     */
    void onSendKey(String uid, String toUid, String lockId,String send_type, String start,
                 String end, String mark);
    /**
     * 锁的钥匙列表
     */
    void onKeyOfLock(String uid, String lockId);
    /**
     * 键盘密码记录
     */
    void onPassJiLu(String uid,String lock_id,String current_page,String per_page);
    /**
     * 解绑管理员
     */
    void onUnbindLock(String uid, String lockId, String key_id,String auth_out);

    /**
     * 锁推送开关
     * @param push  [0(d)=>不推送，1=>推送]
     */
    void onTuiSong(String uid,String lock_id,int push);

    /**
     * 密码添加前置 - 百马锁添加密码前置 - 查询未获取的密码位 - admin/rent
     */
    void onQianZhi(String uid,String lock_id);

    /**
     * 密码删除回调
     *  @param keyboard_id   ,密码位id
     */
    void onDeletePass(String uid,String lock_id,String keyboard_id);

    /**
     * 密码修改回调
     * @param uid
     * @param lock_id
     * @param keyboard_id   ,密码位id
     * @param pwd           密码值
     * @param start
     * @param end
     */
    void onModifyPass(String uid,String lock_id,String keyboard_id,String pwd,String start,String end);
    /**
     * 密码添加回调
     * @param uid
     * @param lock_id
     * @param pwd_list   ,密码列表json
     * @param pwd           密码值
     * @param start
     * @param end
     */
    void onAddPass(String uid,String lock_id,String pwd_list,String app_time,String start,String end,String pwd);

    /**
     * 密码别名
     */
    void onModifyAlias(String uid,String lock_id,String keyboard_id,String alias);

    /**
     * 修改钥匙别名
     */
    void onEditkey(String uid,String key_id,String mark);

}
